package com.ruoyi.msg.service;

import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.msg.domain.bo.MsgDcwjWjBo;
import com.ruoyi.msg.domain.bo.WjXtBatchBo;
import com.ruoyi.msg.domain.vo.MsgDcwjTkVo;
import com.ruoyi.msg.domain.vo.MsgDcwjWjVo;
import com.ruoyi.msg.domain.vo.TkXxDetailVo;

import java.util.Collection;
import java.util.List;

/**
 * 问卷管理Service接口
 *
 * @author xiaohao
 * @date 2023-02-02
 */
public interface IMsgDcwjWjService {

    /**
     * 问卷中的题库列表
     *
     * @param id   问卷id
     * @param name 名称
     * @param type 类型
     * @return 题库列表VO
     */
    List<TkXxDetailVo> selectedList(Long id, String name, String type);

    /**
     * 未被当前问卷选中的题库列表
     *
     * @param id        问卷id
     * @param pageQuery 分页参数
     * @return 题库分页列表
     */
    TableDataInfo<MsgDcwjTkVo> chooseList(Long id, PageQuery pageQuery);

    /**
     * 题库选题操作（批量保存）
     *
     * @param bo 批处理结构
     */
    void saveBatch(WjXtBatchBo bo);

    /**
     * 查询问卷管理
     */
    MsgDcwjWjVo queryById(Long id);

    /**
     * 查询问卷管理列表
     */
    TableDataInfo<MsgDcwjWjVo> queryPageList(MsgDcwjWjBo bo, PageQuery pageQuery);

    /**
     * 查询问卷管理列表
     */
    List<MsgDcwjWjVo> queryList(MsgDcwjWjBo bo);

    /**
     * 新增问卷管理
     */
    Boolean insertByBo(MsgDcwjWjBo bo);

    /**
     * 修改问卷管理
     */
    Boolean updateByBo(MsgDcwjWjBo bo);

    /**
     * 校验并批量删除问卷管理信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

}
